package com.boomshake.service;

import com.boomshake.dto.AdminLoginRequest;
import com.boomshake.entity.AdminUser;
import com.boomshake.vo.AdminLoginResponseVO;
import com.boomshake.vo.AdminUserInfoVO;

/**
 * 管理员用户Service接口
 *
 * @author BoomShake
 * @date 2024-12-15
 */
public interface AdminUserService {

    /**
     * 管理员登录
     *
     * @param request 登录请求
     * @param clientIp 客户端IP
     * @return 登录响应
     */
    AdminLoginResponseVO login(AdminLoginRequest request, String clientIp);

    /**
     * 根据用户名查询管理员
     *
     * @param username 用户名
     * @return 管理员信息
     */
    AdminUser getByUsername(String username);

    /**
     * 根据ID获取管理员信息
     *
     * @param adminId 管理员ID
     * @return 管理员信息
     */
    AdminUserInfoVO getAdminUserInfo(Long adminId);

    /**
     * 验证密码
     *
     * @param rawPassword 原始密码
     * @param encodedPassword 加密密码
     * @return 是否匹配
     */
    boolean checkPassword(String rawPassword, String encodedPassword);
} 